﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Project.Controller;
using Project.View;

namespace Project.Model
{
    public class Vak
    {
        private int vakNummer;
        private Vak next;
        private Vak prev;
        private Vak nextEind;
        private VakType vakType;
        private Pion pion;
        private VakPanel vakPanel;

        public Vak(VakType vakType)
        {
            this.vakType = vakType;
        }

        public Vak(int vakNummer, VakType vakType)
        {
            this.vakNummer = vakNummer;
            this.vakType = vakType;
        }

        // Controleer heeft dit vak een pion bevat
        // @return: boolean of dit van een pion bevat
        public bool heeftPion()
        {
            return this.pion != null;
        }

        // Set het volgende vlak, en zet de Prev van dat vak op dit vak
        public void setNext(Vak v)
        {
            v.Prev = this;
            this.Next = v;
        }

        public void setPion(Pion pion)
        {
            if (this.heeftPion())
            {
                this.Pion.setPionTerug();
            }
            pion.Vak = this;
            this.pion = pion;
        }

        // VakNummer Property
        public int VakNummer
        {
            get { return vakNummer; }
            set { vakNummer = value; }
        }
        
        // Next Property
        public Vak Next
        {
            get { return next; }
            set { next = value; }
        }

        // Prev Property
        public Vak Prev
        {
            get { return prev; }
            set { prev = value; }
        }

        // NextEind Property
        public Vak NextEind
        {
            get { return nextEind; }
            set { nextEind = value; }
        }

        // Pion Property
        public Pion Pion
        {
            get { return pion; }
            set { pion = value; }
        }
        
        // VakPanel Property
        public VakPanel VakPanel
        {
            get { return vakPanel; }
            set { vakPanel = value; }
        }

        // VakType Property
        public VakType VakType
        {
            get { return vakType; }
            set { vakType = value; }
        }
    }
}
